// API服务基础配置
const API_BASE_URL = 'http://localhost:8980'; // 假设后端API运行在5000端口

// 通用请求方法
async function request(endpoint: string, options: RequestInit = {}) {
    const url = `${endpoint}`;

    // 默认请求头
    const headers = {
        'Content-Type': 'application/json',
        ...options.headers,
    };

    const config = {
        ...options,
        headers,
    };

    try {
        const response = await fetch(url, config);

        // 检查响应状态
        if (!response.ok) {
            const errorData = await response.json().catch(() => ({}));
            return Promise.reject(new Error(errorData.error || `请求失败: ${response.status}`));
        }

        return await response.json();
    } catch (error) {
        console.error('API请求错误:', error);
        return Promise.reject(error);
    }
}

// 植物疾病API服务
export const plantDiseaseApi = {
    // 获取植物疾病列表
    getPlantDiseases: async (params: {
        page?: number;
        per_page?: number;
        en_name?: string;
        cn_name?: string;
    }) => {
        const queryParams = new URLSearchParams();

        // 添加查询参数
        if (params.page) queryParams.append('page', params.page.toString());
        if (params.per_page) queryParams.append('per_page', params.per_page.toString());
        if (params.en_name) queryParams.append('en_name', params.en_name);
        if (params.cn_name) queryParams.append('cn_name', params.cn_name);

        const queryString = queryParams.toString();
        const endpoint = `/app-api/disease/list${queryString ? `?${queryString}` : ''}`;

        return request(endpoint, { method: 'GET' });
    },

    // 获取单个植物疾病详情
    getPlantDiseaseById: async (id: number) => {
        return request(`/api/plant_disease/${id}`, { method: 'GET' });
    },

    // 其他可能需要的API方法
    // ...
};